home *** CD-ROM | disk | FTP | other *** search
/ Amiga Games Extra 1996 September / Amiga Games Extra CD-ROM 9-1996.iso / userbox / publicdomain / vim-4.2 / src / makefile.w32 < prev    next >
Makefile  |  1996-05-29  |  9KB  |  278 lines

  1. #
  2. # Makefile for Vim on Win32 (Windows NT and Windows 95), using the
  3. # Microsoft Visual C++ 2.x and MSVC 4.x compilers.  It builds on Windows 95
  4. # and all four NT platforms: i386, Alpha, MIPS, and PowerPC.  The NT/i386
  5. # binary and the Windows 95 binary are identical.  To build using Borland C++,
  6. # use Makefile.b32.
  7. #
  8.  
  9. # to build the retail version:
  10. #    nmake -f Makefile.w32
  11. # to build the debug version:
  12. #    nmake DEBUG=1 -f Makefile.w32
  13.  
  14. ### See feature.h for a list of optionals.
  15. # If you want to build some optional features without modifying the source,
  16. # you can set DEFINES on the command line, e.g.,
  17. #    nmake -f makefile.w32 "DEFINES=-DEMACS_TAGS"
  18.  
  19.  
  20. # Build on both Windows NT and Windows 95
  21.  
  22. TARGETOS = BOTH
  23.  
  24.  
  25. # ntwin32.mak requires that CPU be set appropriately
  26.  
  27. !ifdef PROCESSOR_ARCHITECTURE
  28. # We're on Windows NT
  29. CPU = $(PROCESSOR_ARCHITECTURE)
  30. ! if "$(CPU)" == "x86"
  31. CPU = i386
  32. ! endif
  33. !else  # !PROCESSOR_ARCHITECTURE
  34. # We're on Windows 95
  35. CPU = i386
  36. !endif # !PROCESSOR_ARCHITECTURE
  37.  
  38.  
  39. # Build a retail version by default
  40.  
  41. !ifndef DEBUG
  42. NODEBUG = 1
  43. !endif
  44.  
  45.  
  46. # Build a multithreaded version for the Windows 95 dead keys hack
  47. # Commented out because it doesn't work.
  48. # MULTITHREADED = 1
  49.  
  50.  
  51. # Get all sorts of useful, standard macros from the SDK.  (Note that
  52. # MSVC 2.2 does not install <ntwin32.mak> in the \msvc20\include
  53. # directory, but you can find it in \msvc20\include on the CD-ROM.
  54. # You may also need <win32.mak> from the same place.)
  55.  
  56. !include <ntwin32.mak>
  57.  
  58.  
  59. #>>>>> path of the compiler and linker; name of include and lib directories
  60. # PATH = c:\msvc20\bin;$(PATH)
  61. # INCLUDE = c:\msvc20\include
  62. # LIB = c:\msvc20\lib
  63.  
  64. !ifndef CTAGS
  65. CTAGS = ctags
  66. !endif
  67.  
  68. !ifdef MULTITHREADED
  69. CVARS = $(cvarsmt)
  70. CONLIBS = $(conlibsmt)
  71. !else
  72. CVARS = $(cvars)
  73. CONLIBS = $(conlibs)
  74. !endif
  75.  
  76.  
  77. CFLAGS = -c /W3 /nologo $(CVARS) $(cflags) $(DEFINES)
  78.  
  79. #>>>>> end of choices
  80. ###########################################################################
  81.  
  82. !ifdef PROCESSOR_ARCHITECTURE
  83. OS_TYPE    = winnt
  84. DEL_TREE = rmdir /s /q
  85. !else
  86. OS_TYPE    = win95
  87. DEL_TREE = deltree /y
  88. !endif
  89.  
  90. !ifdef NODEBUG
  91. OUTDIR=.\Release
  92. VIM = vim
  93. CFLAGS = $(CFLAGS) -DNDEBUG /Ox
  94. RCFLAGS = $(rcflags) $(rcvars) -DNDEBUG
  95. !else  # DEBUG
  96. OUTDIR=.\Debug
  97. VIM = vimd
  98. # MSVC 4.1
  99. PDB = /Fd$(OUTDIR)/
  100. LINK_PDB = /PDB:$(OUTDIR)/
  101. # MSVC 2.2
  102. # PDB = /Fd$(OUTDIR)/vim.pdb
  103. # LINK_PDB = /PDB:$(OUTDIR)/vim.pdb
  104. CFLAGS = $(CFLAGS) -D_DEBUG -DDEBUG /Zi /Od
  105. RCFLAGS = $(rcflags) $(rcvars) -D_DEBUG -DDEBUG
  106. !endif # DEBUG
  107.  
  108.  
  109. INCL =    vim.h win32.h ascii.h feature.h globals.h keymap.h macros.h \
  110.     proto.h option.h structs.h term.h
  111.     
  112.  
  113. OBJ =    $(OUTDIR)\win32.obj    $(OUTDIR)\alloc.obj    $(OUTDIR)\buffer.obj   \
  114.     $(OUTDIR)\charset.obj  $(OUTDIR)\cmdcmds.obj  $(OUTDIR)\cmdline.obj  \
  115.     $(OUTDIR)\csearch.obj  $(OUTDIR)\digraph.obj  $(OUTDIR)\edit.obj     \
  116.     $(OUTDIR)\fileio.obj   $(OUTDIR)\getchar.obj  $(OUTDIR)\help.obj     \
  117.     $(OUTDIR)\linefunc.obj $(OUTDIR)\main.obj     $(OUTDIR)\mark.obj     \
  118.     $(OUTDIR)\memfile.obj  $(OUTDIR)\memline.obj  $(OUTDIR)\message.obj  \
  119.     $(OUTDIR)\misccmds.obj $(OUTDIR)\normal.obj   $(OUTDIR)\option.obj   \
  120.     $(OUTDIR)\ops.obj      $(OUTDIR)\quickfix.obj $(OUTDIR)\regexp.obj   \
  121.     $(OUTDIR)\regsub.obj   $(OUTDIR)\screen.obj   $(OUTDIR)\search.obj   \
  122.     $(OUTDIR)\tables.obj   $(OUTDIR)\tag.obj      $(OUTDIR)\term.obj     \
  123.     $(OUTDIR)\undo.obj     $(OUTDIR)\window.obj   $(OUTDIR)\vim.res
  124.  
  125. all:    $(VIM)
  126.  
  127. $(VIM): $(OUTDIR) $(OBJ) $(OUTDIR)\version.obj
  128.     $(link) $(linkdebug) $(conflags) -out:$*.exe $(OBJ) \
  129.         $(OUTDIR)\version.obj $(CONLIBS) user32.lib $(LINK_PDB)
  130.         del $(OUTDIR)\version.obj
  131.  
  132. $(VIM).exe: $(VIM)
  133.  
  134. $(OUTDIR):
  135.     if not exist $(OUTDIR)/nul    mkdir $(OUTDIR)
  136.  
  137. ctags tags: notags
  138.     $(CTAGS) *.c *.h proto\*.pro
  139.  
  140. notags:
  141.     - del tags
  142.  
  143. clean:
  144.     - $(DEL_TREE) $(OUTDIR)
  145.     - del cmdtab.h
  146.     - del $(VIM).exe
  147.     - del $(VIM).ilk
  148.     - del $(VIM).pdb
  149.     - del $(VIM).map
  150.     - del $(VIM).ncb
  151.  
  152. addcr:    addcr.c
  153.     $(CC) addcr.c
  154.     addcr.bat
  155.  
  156. ###########################################################################
  157.  
  158. $(OUTDIR)/win32.obj:    $(OUTDIR) win32.c  $(INCL) win32.h
  159.     $(CC) $(CFLAGS) win32.c /Fo$(OUTDIR)/win32.obj $(PDB)
  160.  
  161. $(OUTDIR)/alloc.obj:    $(OUTDIR) alloc.c  $(INCL)
  162.     $(CC) $(CFLAGS) alloc.c /Fo$(OUTDIR)/alloc.obj $(PDB)
  163.  
  164. $(OUTDIR)/buffer.obj:    $(OUTDIR) buffer.c  $(INCL)
  165.     $(CC) $(CFLAGS) buffer.c /Fo$(OUTDIR)/buffer.obj $(PDB)
  166.  
  167. $(OUTDIR)/charset.obj:    $(OUTDIR) charset.c  $(INCL)
  168.     $(CC) $(CFLAGS) charset.c /Fo$(OUTDIR)/charset.obj $(PDB)
  169.  
  170. $(OUTDIR)/cmdcmds.obj:    $(OUTDIR) cmdcmds.c  $(INCL)
  171.     $(CC) $(CFLAGS) cmdcmds.c /Fo$(OUTDIR)/cmdcmds.obj $(PDB)
  172.  
  173. $(OUTDIR)/cmdline.obj:    $(OUTDIR) cmdline.c  $(INCL) cmdtab.h
  174.     $(CC) $(CFLAGS) cmdline.c /Fo$(OUTDIR)/cmdline.obj $(PDB)
  175.  
  176. $(OUTDIR)/csearch.obj:    $(OUTDIR) csearch.c  $(INCL)
  177.     $(CC) $(CFLAGS) csearch.c /Fo$(OUTDIR)/csearch.obj $(PDB)
  178.  
  179. $(OUTDIR)/digraph.obj:    $(OUTDIR) digraph.c  $(INCL)
  180.     $(CC) $(CFLAGS) digraph.c /Fo$(OUTDIR)/digraph.obj $(PDB)
  181.  
  182. $(OUTDIR)/edit.obj:    $(OUTDIR) edit.c  $(INCL)
  183.     $(CC) $(CFLAGS) edit.c /Fo$(OUTDIR)/edit.obj $(PDB)
  184.  
  185. $(OUTDIR)/fileio.obj:    $(OUTDIR) fileio.c  $(INCL)
  186.     $(CC) $(CFLAGS) fileio.c /Fo$(OUTDIR)/fileio.obj $(PDB)
  187.  
  188. $(OUTDIR)/getchar.obj:    $(OUTDIR) getchar.c  $(INCL)
  189.     $(CC) $(CFLAGS) getchar.c /Fo$(OUTDIR)/getchar.obj $(PDB)
  190.  
  191. $(OUTDIR)/help.obj:    $(OUTDIR) help.c  $(INCL)
  192.     $(CC) $(CFLAGS) help.c /Fo$(OUTDIR)/help.obj $(PDB)
  193.  
  194. $(OUTDIR)/linefunc.obj:    $(OUTDIR) linefunc.c  $(INCL)
  195.     $(CC) $(CFLAGS) linefunc.c /Fo$(OUTDIR)/linefunc.obj $(PDB)
  196.  
  197. $(OUTDIR)/main.obj:    $(OUTDIR) main.c  $(INCL)
  198.     $(CC) $(CFLAGS) main.c /Fo$(OUTDIR)/main.obj $(PDB)
  199.  
  200. $(OUTDIR)/mark.obj:    $(OUTDIR) mark.c  $(INCL)
  201.     $(CC) $(CFLAGS) mark.c /Fo$(OUTDIR)/mark.obj $(PDB)
  202.  
  203. $(OUTDIR)/memfile.obj:    $(OUTDIR) memfile.c  $(INCL)
  204.     $(CC) $(CFLAGS) memfile.c /Fo$(OUTDIR)/memfile.obj $(PDB)
  205.  
  206. $(OUTDIR)/memline.obj:    $(OUTDIR) memline.c  $(INCL)
  207.     $(CC) $(CFLAGS) memline.c /Fo$(OUTDIR)/memline.obj $(PDB)
  208.  
  209. $(OUTDIR)/message.obj:    $(OUTDIR) message.c  $(INCL)
  210.     $(CC) $(CFLAGS) message.c /Fo$(OUTDIR)/message.obj $(PDB)
  211.  
  212. $(OUTDIR)/misccmds.obj:    $(OUTDIR) misccmds.c  $(INCL)
  213.     $(CC) $(CFLAGS) misccmds.c /Fo$(OUTDIR)/misccmds.obj $(PDB)
  214.  
  215. $(OUTDIR)/normal.obj:    $(OUTDIR) normal.c  $(INCL) ops.h
  216.     $(CC) $(CFLAGS) normal.c /Fo$(OUTDIR)/normal.obj $(PDB)
  217.  
  218. $(OUTDIR)/option.obj:    $(OUTDIR) option.c  $(INCL)
  219.     $(CC) $(CFLAGS) option.c /Fo$(OUTDIR)/option.obj $(PDB)
  220.  
  221. $(OUTDIR)/ops.obj:    $(OUTDIR) ops.c  $(INCL) ops.h
  222.     $(CC) $(CFLAGS) ops.c /Fo$(OUTDIR)/ops.obj $(PDB)
  223.  
  224. $(OUTDIR)/quickfix.obj:    $(OUTDIR) quickfix.c  $(INCL)
  225.     $(CC) $(CFLAGS) quickfix.c /Fo$(OUTDIR)/quickfix.obj $(PDB)
  226.  
  227. $(OUTDIR)/regexp.obj:    $(OUTDIR) regexp.c  $(INCL)
  228.     $(CC) $(CFLAGS) regexp.c /Fo$(OUTDIR)/regexp.obj $(PDB)
  229.  
  230. $(OUTDIR)/regsub.obj:    $(OUTDIR) regsub.c  $(INCL)
  231.     $(CC) $(CFLAGS) regsub.c /Fo$(OUTDIR)/regsub.obj $(PDB)
  232.  
  233. $(OUTDIR)/screen.obj:    $(OUTDIR) screen.c  $(INCL)
  234.     $(CC) $(CFLAGS) screen.c /Fo$(OUTDIR)/screen.obj $(PDB)
  235.  
  236. $(OUTDIR)/search.obj:    $(OUTDIR) search.c  $(INCL)
  237.     $(CC) $(CFLAGS) search.c /Fo$(OUTDIR)/search.obj $(PDB)
  238.  
  239. $(OUTDIR)/tables.obj:    $(OUTDIR) tables.c  $(INCL)
  240.     $(CC) $(CFLAGS) tables.c /Fo$(OUTDIR)/tables.obj $(PDB)
  241.  
  242. $(OUTDIR)/tag.obj:    $(OUTDIR) tag.c  $(INCL)
  243.     $(CC) $(CFLAGS) tag.c /Fo$(OUTDIR)/tag.obj $(PDB)
  244.  
  245. $(OUTDIR)/term.obj:    $(OUTDIR) term.c  $(INCL)
  246.     $(CC) $(CFLAGS) term.c /Fo$(OUTDIR)/term.obj $(PDB)
  247.  
  248. $(OUTDIR)/undo.obj:    $(OUTDIR) undo.c  $(INCL)
  249.     $(CC) $(CFLAGS) undo.c /Fo$(OUTDIR)/undo.obj $(PDB)
  250.  
  251. $(OUTDIR)/version.obj: $(OUTDIR) version.c version.h
  252.     $(CC) $(CFLAGS) version.c /Fo$(OUTDIR)/version.obj $(PDB)
  253.  
  254. $(OUTDIR)/window.obj:    $(OUTDIR) window.c  $(INCL)
  255.     $(CC) $(CFLAGS) window.c /Fo$(OUTDIR)/window.obj $(PDB)
  256.  
  257. $(OUTDIR)/vim.res:    $(OUTDIR) vim.rc version.h
  258.     $(RC) /l 0x409 /Fo$(OUTDIR)/vim.res $(RCFLAGS) vim.rc
  259.  
  260. cmdtab.h: cmdtab.tab $(OUTDIR)/mkcmdtab.exe
  261.     $(OUTDIR)\mkcmdtab cmdtab.tab cmdtab.h
  262.  
  263. $(OUTDIR)/mkcmdtab.exe: $(OUTDIR)/mkcmdtab.obj
  264.     $(link) $(linkdebug) $(conflags) -out:$*.exe $** $(CONLIBS)
  265.  
  266. $(OUTDIR)/mkcmdtab.obj: $(OUTDIR) mkcmdtab.c
  267.     $(CC) $(CFLAGS) mkcmdtab.c /Fo$(OUTDIR)/mkcmdtab.obj
  268.  
  269. proto.h: proto/win32.pro proto/alloc.pro proto/buffer.pro proto/charset.pro \
  270.     proto/cmdcmds.pro proto/cmdline.pro proto/csearch.pro \
  271.     proto/digraph.pro proto/edit.pro proto/fileio.pro \
  272.     proto/getchar.pro proto/help.pro proto/linefunc.pro \
  273.     proto/main.pro proto/mark.pro proto/memfile.pro proto/memline.pro \
  274.     proto/message.pro proto/misccmds.pro proto/normal.pro proto/ops.pro \
  275.     proto/option.pro proto/quickfix.pro proto/regexp.pro \
  276.     proto/regsub.pro proto/screen.pro proto/search.pro proto/tables.pro \
  277.     proto/tag.pro proto/term.pro proto/undo.pro proto/window.pro
  278.